package com.panshi.mapper;

import com.panshi.pojo.ArticleVO;
import com.panshi.api.util.PageSizeVO;
import com.panshi.pojo.BeiUserVO;
import io.swagger.annotations.ApiModel;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * @author XiaoWangYa
 * @version 1.0
 * @date 2020/8/4 0004 下午 2:47
 */

@Mapper
@Repository
@ApiModel("文章Mapper层")
public interface ArticleMapper {

    // 新增文章内容
    int addArticleInfo(ArticleVO yb_Article_VO);

    // 伪删除文章内容
    void deleteArticleInfo(@Param("id") int id);
    // 删除文章内容
    void delArticleInfo(@Param("id") int id);

    // 新增动态表数据
    void addDynamic(ArticleVO yb_Article_VO);
    // 新增站内消息数据
    void addInstation(ArticleVO yb_Article_VO);
    // 新增搜索表数据
    void addSearch(ArticleVO yb_Article_VO);

    // 删除动态表信息
    void deleteDynamic(@Param("id") int id);
    // 删除搜索表数据
    void deleteSearch(@Param("id") int id);

    // 用户文章发布数量 +1
    void upAssignUserArticleIssueSumAdd(@Param("id") int id);;
    // 用户文章发布数量 -1
    void upAssignUserArticleIssueSumDel(@Param("id") int id);;

    // 查询文章咨询信息
    List<ArticleVO> queryArticleInfo(PageSizeVO yb_PageSize_VO);

    // 查询热门文章咨询信息
    List<ArticleVO> queryHotArticleInfo(PageSizeVO yb_PageSize_VO);

    // 管理员查询全部文章咨询信息
    List<ArticleVO> adminQueryArticleInfo(PageSizeVO yb_PageSize_VO);

    // 查询最新文章咨询信息
    List<ArticleVO> queryNewArticleInfo(PageSizeVO yb_PageSize_VO);

    // 查询指定文章咨询信息
    ArticleVO queryAssignArticleInfo(@Param("aid") int aid);

    // 查询文章数据量
    int queryArticleCount ();

    // 随机查询(专家推荐、大家都在看、其他看点、相关推荐
    List<ArticleVO> randomQueryArticle(PageSizeVO yb_PageSize_VO);

    // 修改指定文章咨询信息
    void updateAssignArticleInfo(ArticleVO yb_Article_VO);

    // 增加文章阅读量
    void addReadCount(@Param("aid") int id);
    // 增加文章评论量
    void addCount(@Param("aid") int id);
    // 增加文章收藏量
    void addCollectCount(@Param("aid") int id);

    // 增加文章阅读量
    void addSearchReadCount(@Param("aid") int id);
    // 增加文章评论量
    void addSearchCount(@Param("aid") int id);
    // 增加文章收藏量
    void addSearchCollectCount(@Param("aid") int id);

    // 查询指定用户邮箱信息
    BeiUserVO queryAssignUserInfo (@Param("uid") int id);
}
